#!/bin/bash
###############################################################################
#       脚本名称:unit_utils.sh
#       功能描述: utils工具类模块单元测试脚本。
#       作者: 林再来
#       日期: 2025-10-15
#       版本: 1.0
###############################################################################

# 切换到脚本目录
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1

echo "========================================"
echo "开始运行工具类测试套件"
echo "========================================"
echo ""

# 统计
TOTAL_SUITES=0
PASSED_SUITES=0
FAILED_SUITES=0

# 运行测试并收集结果
run_test_suite() {
    local test_file="$1"
    local test_name=$(basename "$test_file" .sh)
    
    ((TOTAL_SUITES++))
    
    echo "----------------------------------------"
    echo "运行测试套件: $test_name"
    echo "----------------------------------------"
    
    if bash "$test_file"; then
        ((PASSED_SUITES++))
        echo "✓ $test_name 测试通过"
    else
        ((FAILED_SUITES++))
        echo "✗ $test_name 测试失败"
    fi
    
    echo ""
}

# 运行所有测试
run_test_suite "test_utils.sh"
run_test_suite "test_utils_yq.sh"
run_test_suite "test_utils_jq.sh"
run_test_suite "test_utils_datetime.sh"
run_test_suite "test_utils_character.sh"
run_test_suite "test_utils_number.sh"
run_test_suite "test_utils_validate.sh"

echo "========================================"
echo "工具类测试总结"
echo "========================================"
echo "测试套件总数: $TOTAL_SUITES"
echo "通过: $PASSED_SUITES"
echo "失败: $FAILED_SUITES"
echo "========================================"

# 返回测试结果
if [[ $FAILED_SUITES -gt 0 ]]; then
    echo "❌ 部分测试失败"
    exit 1
else
    echo "✅ 所有测试通过！"
    exit 0
fi

